package request

// GetLogsByUserRequest 根据用户ID获取操作日志请求
type GetLogsByUserRequest struct {
	UserID   string `form:"user_id" json:"user_id" binding:"required" example:"user_001"` // 用户ID
	Page     int32  `form:"page" json:"page" example:"1"`                                  // 页码
	PageSize int32  `form:"page_size" json:"page_size" example:"20"`                      // 每页数量
}

// GetLogsByModuleRequest 根据模块获取操作日志请求
type GetLogsByModuleRequest struct {
	Module   string `form:"module" json:"module" binding:"required" example:"order"` // 模块名称
	Page     int32  `form:"page" json:"page" example:"1"`                            // 页码
	PageSize int32  `form:"page_size" json:"page_size" example:"20"`                 // 每页数量
}

// GetLogsByResourceRequest 根据资源获取操作日志请求
type GetLogsByResourceRequest struct {
	ResourceType string `form:"resource_type" json:"resource_type" binding:"required" example:"order"` // 资源类型
	ResourceID   string `form:"resource_id" json:"resource_id" binding:"required" example:"1"`         // 资源ID
	Page         int32  `form:"page" json:"page" example:"1"`                                           // 页码
	PageSize     int32  `form:"page_size" json:"page_size" example:"20"`                               // 每页数量
}

// GetLogsByConditionRequest 根据条件获取操作日志请求
type GetLogsByConditionRequest struct {
	UserID       string `form:"user_id" json:"user_id" example:"user_001"`                    // 用户ID
	Module       string `form:"module" json:"module" example:"order"`                         // 模块名称
	Operation    string `form:"operation" json:"operation" example:"create"`                  // 操作类型
	ResourceType string `form:"resource_type" json:"resource_type" example:"order"`           // 资源类型
	ResourceID   string `form:"resource_id" json:"resource_id" example:"1"`                   // 资源ID
	LogType      string `form:"log_type" json:"log_type" example:"operation"`                 // 日志类型
	Result       string `form:"result" json:"result" example:"success"`                       // 操作结果
	StartTime    string `form:"start_time" json:"start_time" example:"2025-01-01T00:00:00Z"` // 开始时间
	EndTime      string `form:"end_time" json:"end_time" example:"2025-01-31T23:59:59Z"`     // 结束时间
	IPAddress    string `form:"ip_address" json:"ip_address" example:"192.168.1.1"`          // IP地址
	Page         int32  `form:"page" json:"page" example:"1"`                                 // 页码
	PageSize     int32  `form:"page_size" json:"page_size" example:"20"`                     // 每页数量
}

// GetLogStatisticsRequest 获取日志统计信息请求
type GetLogStatisticsRequest struct {
	StartTime string `form:"start_time" json:"start_time" example:"2025-01-01T00:00:00Z"` // 开始时间
	EndTime   string `form:"end_time" json:"end_time" example:"2025-01-31T23:59:59Z"`     // 结束时间
}

// DeleteOldLogsRequest 删除旧日志请求
type DeleteOldLogsRequest struct {
	BeforeTime string `form:"before_time" json:"before_time" binding:"required" example:"2024-12-31T23:59:59Z"` // 删除时间点
}

